Les Expressions Régulières sont une façon puissante de définir des modèles de recherches et d'appariements. Beyond Compare vous permet d'utiliser des expressions régulières lors de recherche dans du texte, et lors de la spécification de règles pour classifier les textes. Le support d'expressions régulières dans Beyond Compare est un sous-ensemble de la syntaxe Perl des Expressions Régulières (PCRE, Perl Compatible Regular Expression).
Une expression régulière est composée de deux types de caractère, les caractères normaux, et les méta-caractères. Lors de l'exécution de recherche d'égalité, les méta-caractères ont une signification spéciale pour contrôler comment le test d'égalité sera fait, et sert de joker (caractère générique). Les caractères normaux sont toujours comparés tels quels. Pour comparer à un méta-caractère, dégagez-vous de sa signification en le préfixant avec un barre renversée '\' (Caractère d'échappement, "Escape"). Il y a de nombreux types de méta-caractères, chacun étant détaillé ci-dessous.
Méta-caractères - Séquences d'échappement :
Méta-caractères - Classes prédéfinies :
Les classes prédéfinies de caractère s'apparient avec n'importe quel caractère d'un certain sous-ensemble. Les classes suivantes sont déjà définies pour vous.
Vous pouvez construire vos propres classes en entourant le groupe de caractères entre crochets "[]". Les classes prédéfinies (excepté '.') peuvent être utilisées entre crochets, et si un tiret '-' apparaît entre deux caractères, cela représente un intervalle. Donc [a-z] représente toutes les lettres minuscules, et [a-zA-Z] représentera les lettres minuscules et majuscules. Pour inclure un '-' dans la classe, placez-le au début ou à la fin de la chaîne de caractères.
Si le premier caractère entre les crochets est un accent circonflexe "^", alors la classe représente tous les caractères exceptés ceux qui sont spécifiés. [^a-z] représente tous les caractères qui ne sont pas des caractères alphabétiques minuscules.
Méta-caractères - Alternatives :
En plaçant un '|' entre deux groupes d'items, on indique des concordances alternatives. a|b concordera avec a ou b. ab|cd concordera avec "ab" ou "cd", mais pas "ac". "|" groupe les caractères à partir du délimiteur du modèle ("(", "[" ou le début du modèle) jusqu'à lui-même, et ensuite jusqu'à la fin du modèle. Des alternatives peuvent être placées entre parenthèses "()" pour faire en sorte que ce qu'on recherche soit évident, comme dans a(bc|de]f. Les alternatives sont appariées de gauche à droite; bey|beyond concordera avec bey, même si la chaîne de caractères est "beyond".
Méta-caractères - Ancrages (Positions) :
Les méta-caractères suivants contrôlent lorsque l'appariement doit être sur une ligne. Notez : \A et \Z concorde avec respectivement le début et la fin du texte, mais Beyond Compare exécute la recherche sur la base d'une ligne, ceux-ci ont le même effet que ^ et $.
Méta-caractères - Répétitions :
N'importe quoi dans une expression régulière peut être suivi par un méta-caractère de répétition (opérateur itératif) qui s'applique à l'item précédent. Il y a deux sortes de répétition - Gourmande ou non gourmande. Les répétitions gourmandes s'apparient avec autant de caractères qu'elles peuvent, les non gourmandes avec aussi peu qu'elles peuvent.
Gourmande :
Non Gourmande :
Méta-Caractères - Sous-expressions :
Les parenthèses "()" peuvent également être utilisées pour grouper des caractères afin de les utiliser avec des itérations et des références arrières (discutées ci-dessous). (bey){4,5} désignera entre 4 et 5 fois les occurrences de "bey". (abc|[0-9])* désigne n'importe quelle combinaison de "abc" et de chiffres 0 à 9. Eg. "abc5", "679abc" et "abc77abc".
Méta-Caractères - Références Arrières :
Chaque séquence de caractères qui concorde dans un groupe "()" sera sauvegardée comme une sous-expression à laquelle vous pourrez vous référer plus tard avec \1 à \9, qui se réfèrent aux sous-expressions de gauche à droite. b(.)\1n concordera avec "been" et "boon", mais pas avec "bean", ni "ben" ou "beeen".
Modificateurs :
Les modificateurs vous permettent de modifier le comportement de l'appariement à partir de ce point. Si le modificateur est contenu dans une sous-expression, il affecte uniquement cette sous-expression. Les modificateurs sont représenté par (?x) ou (?-x) où x est la lettre modificatrice, et la présence de '-' indique si la fonctionnalité doit être prise en compte ou non.
Exemples :
(?i)Beyond Compare concorde avec "Beyond Compare" et avec "beyond compare"
(?i)Beyond (?-i)Compare concorde avec "Beyond Compare" et "bEyOnD Compare", mais pas avec "beyond compare"